package com.feidee.data.report.dao;

import com.feidee.data.report.model.Dependency.DataResourcesStatusModel;
import com.feidee.data.report.model.Dependency.ReportDependencyStatusModel;

import java.util.List;
import java.util.Set;

public interface IReportAndSourceStatusDao {

    String getReportRunStatus(String reportKey);

    int changeReportRunStatus(String reportKey, String status);

    int clearReportDdzxAndZzzxRunStatus();

    void updateReportRunTime(String reportKey, String status, String priority, long startTimestamp, String errorMsg);

    void recordHostIp();

    String getDataResourcesStatus(String reportKey);

    String validSourceTblData(String forceExec, String reportKey, String dataResources, String isScheduler, long enqueueTime, boolean isPrint);

    String validReportDependency(String forceExec, String reportKey, String dependedReportStr, long submitTime, boolean isPrint);

    List<DataResourcesStatusModel> getDependencyDataResourcesStatus(String reportKey);

    void getUpDependencyReportDependencyStatus(Set<ReportDependencyStatusModel> upReportDependencyStatus, String reportKey);

    void getDownDependencyReportDependencyStatus(Set<ReportDependencyStatusModel> downReportDependencyStatus, String reportKey);

    List<String> getResourcesDependencyReportList(String searchDependencyReportSql);

    String getReportApplyId(String report_key);

    List<String> getRslt(String sqlStr);
}
